package com.phiture.erp.basic.core.service;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import com.phiture.erp.basic.core.pojo.dto.ErpUserCustomizeConfigPageReqDTO;
import com.phiture.erp.basic.core.pojo.dto.ErpUserCustomizeConfigSaveReqDTO;
import com.phiture.erp.basic.dal.entity.ErpUserCustomizeConfigDO;

import java.util.Collection;
import java.util.List;

/**
 * 用户自定义配置 Service 接口
 *
 * @author YH
 */
public interface ErpUserCustomizeConfigService {

    /**
     * 创建用户自定义配置
     *
     * @param createReqDTO 创建信息
     * @return 编号
     */
    Long createUserCustomizeConfig(ErpUserCustomizeConfigSaveReqDTO createReqDTO);

    /**
     * 更新用户自定义配置
     *
     * @param updateReqDTO 更新信息
     */
    void updateUserCustomizeConfig(ErpUserCustomizeConfigSaveReqDTO updateReqDTO);

    void updateStatus(Long id);

    /**
     * 删除用户自定义配置
     *
     * @param id 编号
     */
    void deleteUserCustomizeConfig(Long id);

    /**
     * 获得用户自定义配置
     *
     * @param id 编号
     * @return 用户自定义配置
     */
    ErpUserCustomizeConfigDO getUserCustomizeConfig(Long id);

    /**
     * 获得用户自定义配置分页
     *
     * @param pageReqDTO 分页查询
     * @return 用户自定义配置分页
     */
    PageResult<ErpUserCustomizeConfigDO> getUserCustomizeConfigPage(ErpUserCustomizeConfigPageReqDTO pageReqDTO);

    ErpUserCustomizeConfigDO getUserCustomizeConfig(String configKey);
    List<ErpUserCustomizeConfigDO> getUserCustomizeConfigList(Collection<String> configKeys);

}